<template>
  <div class="import">
    <el-card>
      <h4>员工导入</h4>
      <el-alert
        class="myalert"
        type="warning"
        title="每次导入仅可添加1000名员工，姓名、手机、入职时间、聘用形式为必填项"
        show-icon
      >
      </el-alert>
      <myexcel :beforeUpload="beforeUpload" :onSuccess="onSuccess"></myexcel>
    </el-card>
  </div>
</template>

<script>
import { importEmpApi } from "@/api/elmentyess";
export default {
  name: "import",
  methods: {
    // 上传之前触发
    beforeUpload(file) {
      const fileLess = file.size / 1024 / 1024 < 2;
      if (!fileLess) {
        this.$message({
          type: "error",
          message: "文件大于2M"
        });
      }
      return fileLess;
    },
    // 转天数转为具体的时间
    formatDate(day) {
      // 转为时间戳
      const timeStemp = (day - 1) * 24 * 60 * 60 * 1000;
      // 将时间戳转为具体的时间
      const time = new Date(timeStemp);
      // 将年份减去70年
      // 1. 得到年份   getFullYear 获取年份
      const year = time.getFullYear();
      // 2.重新设置年份
      time.setFullYear(year - 70);
      // 返回时间
      return time;
    },
    // 上传成功触发
    async onSuccess({ header, results }) {
      // console.log(header)
      const obj = {
        手机号: "mobile",
        姓名: "username",
        入职日期: "timeOfEntry",
        转正日期: "correctionTime",
        工号: "workNumber"
      };

      const data = results.map(item => {
        const newObj = {};
        Object.keys(item).forEach(key => {
          // 得到中文 key 对应的英文
          const enkey = obj[key];
          // 判断当前的 enkey 是否时间
          if (enkey === "timeOfEntry" || enkey === "correctionTime") {
            // 将天数转为具体的时间
            const time = this.formatDate(item[key]);
            // 赋值时间
            newObj[enkey] = time;
          } else {
            // 将英文添加到 newObj 中
            newObj[enkey] = item[key];
          }
        });
        return newObj;
      });
      // 将数据提交到服务器
      await importEmpApi(data);
      this.$message({
        type: "success",
        message: "新增成功"
      });
      this.$router.push("/employees");
    }

    // // 转天数转为具体的时间
    // formatDate(day) {
    //   // 转为时间戳
    //   const timeStemp = (day - 1) * 24 * 60 * 60 * 1000;
    //   // 将时间戳转为具体的时间
    //   const time = new Date(timeStemp);
    //   // 将年份减去70年
    //   // 1. 得到年份   getFullYear 获取年份
    //   const year = time.getFullYear();
    //   // 2.重新设置年份
    //   time.getFullYear(year - 70);
    //   // 返回时间
    //   return time;
    // }
  }
};
</script>

<style lang="scss">
.import {
  margin: 20px;
  h4 {
    text-align: center;
  }
  .myalert {
    margin-bottom: 40px;
  }
}
</style>
